//
// IBonus.hh for nibbler in /home/lefebv_w//workspace/cpp/nibbler/googleCode
// 
// Made by damien lefebvre
// Login   <lefebv_w@epitech.net>
// 
// Started on  Thu Mar 21 14:15:09 2013 damien lefebvre
// Last update Sun Mar 24 18:43:43 2013 damien lefebvre
//

#ifndef		__IBONUS_HH__
#define		__IBONUS_HH__

#include	<vector>
#include	<string>
#include	<iostream>
#include	<stdlib.h>

#include	"header.hh"
#include	"IGraphicLibrary.hh"
#include	"Case.hh"
#include	"Snake.hh"

class		IBonus
{
public :
  virtual void		generatePosition(t_frame frame, std::vector< std::vector<Case *> > const & map, Snake const & snake) = 0;
  virtual void		draw(t_frame frame, IGraphicLibrary & graph) const = 0;
  virtual bool		checkSnakePosition(t_frame frame, Snake const & snake) const = 0;
  virtual void		move(t_frame frame, std::vector< std::vector<Case *> > const & map, Snake const & snake) = 0;
  virtual t_frame	getLastMove(void) const = 0;
  virtual t_frame      	getFrameRate(void) const = 0;
};

#endif
